import '@/core/http';
import Vue from 'vue';
import JSONbig from '@/utils/jsonBigint/index.js';
import App from './App.vue';
import router from './router';
import store from './store';
import Vant from 'vant';
import '@/core/mixins/global.js';
import 'vant/lib/index.css';
import 'vant/lib/index.less';
import '@/staticDict/onlineStaticDict.js';
import '@/staticDict/flowStaticDict.js';
import '@/staticDict/index.js';
import '@/staticDict/reportStaticDict.js';
import '@/assets/styles/reset.css';
import '@/assets/mobile-font/index.css';

import OnlineCustomImage from '@/components/Online/OnlineCustomImage.vue';
import CustomText from '@/components/CustomText.vue';
import CustomImage from '@/components/CustomImage.vue';
import ImageCard from '@/components/ImageCard.vue';
import FilterBox from '@/components/FilterBox.vue';
import CustomList from '@/components/CustomList.vue';
import CardList from '@/components/CardList.vue';
import FieldSelect from '@/components/FieldSelect.vue';
import FieldCascader from '@/components/FieldCascader.vue';
import FieldSwitch from '@/components/FieldSwitch.vue';
import FieldRadio from '@/components/FieldRadio.vue';
import FieldCheckBox from '@/components/FieldCheckBox.vue';
import FieldRate from '@/components/FieldRate.vue';
import FieldStepper from '@/components/FieldStepper.vue';
import FieldCalendar from '@/components/FieldCalendar.vue';
import SignaturePad from '@/components/SignaturePad/index.vue';
import RadioFilter from '@/components/RadioFilter.vue';
import SelectFilter from '@/components/SelectFilter.vue';
import DateRangeFilter from '@/components/DateRangeFilter.vue';
import SwitchFilter from '@/components/SwitchFilter.vue';
import SearchFilter from '@/components/SearchFilter.vue';
import NumberRangeFilter from '@/components/NumberRangeFilter.vue';
import OnlineCustomBlock from '@/components/Online/OnlineCustomBlock.vue';
import OnlineCustomTabs from '@/components/Online/OnlineCustomTabs.vue';
import OnlineCustomCellGroup from '@/components/Online/OnlineCustomCellGroup.vue';
import OnlineImageCard from '@/components/Online/OnlineImageCard.vue';
import OnlineCustomFilterBox from '@/components/Online/OnlineCustomFilterBox.vue';
import OnlineCustomList from '@/components/Online/OnlineCustomList.vue';
import OnlineCustomChart from '@/components/Online/OnlineCustomChart.vue';
import OnlineFieldLabel from '@/components/Online/OnlineFieldLabel.vue';
import OnlineCustomUpload from '@/components/Online/OnlineCustomUpload.vue';
import UserSelect from '@/components/UserSelect';
import DeptSelect from '@/components/DeptSelect';
import OnlineRelationSelect from '@/components/Online/OnlineRelationSelect';
import Avatar from '@/components/Avatar.vue';
import OnlineForm from '@/views/online/index.vue';
import OnlineReportForm from '@/views/report/index.vue';
// 图表
import LineChart from '@/components/Charts3.0/lineChart.vue';
import BarChart from '@/components/Charts3.0/barChart.vue';
import PieChart from '@/components/Charts3.0/pieChart.vue';
import FunnelChart from '@/components/Charts3.0/funnelChart.vue';
import RadarChart from '@/components/Charts3.0/radarChart.vue';
import ScatterChart from '@/components/Charts3.0/scatterChart.vue';

Vue.component('filter-box', FilterBox);
Vue.component('custom-list', CustomList);
Vue.component('custom-image', CustomImage);
Vue.component('image-card', ImageCard);
Vue.component('card-list', CardList);
Vue.component('van-online-list', OnlineCustomList);
Vue.component('online-custom-image', OnlineCustomImage);
Vue.component('custom-text', CustomText);
Vue.component('van-field-select', FieldSelect);
Vue.component('van-field-cascader', FieldCascader);
Vue.component('van-field-switch', FieldSwitch);
Vue.component('van-field-radio', FieldRadio);
Vue.component('van-field-checkbox', FieldCheckBox);
Vue.component('van-field-rate', FieldRate);
Vue.component('van-field-stepper', FieldStepper);
Vue.component('van-field-calendar', FieldCalendar);
Vue.component('van-field-signature', SignaturePad);
Vue.component('van-radio-filter', RadioFilter);
Vue.component('van-select-filter', SelectFilter);
Vue.component('van-datarange-filter', DateRangeFilter);
Vue.component('van-switch-filter', SwitchFilter);
Vue.component('van-search-filter', SearchFilter);
Vue.component('van-number-range-filter', NumberRangeFilter);
Vue.component('online-custom-block', OnlineCustomBlock);
Vue.component('online-custom-tabs', OnlineCustomTabs);
Vue.component('online-custom-group', OnlineCustomCellGroup);
Vue.component('online-image-card', OnlineImageCard);
Vue.component('online-filter-box', OnlineCustomFilterBox);
Vue.component('online-field-label', OnlineFieldLabel);
Vue.component('online-custom-upload', OnlineCustomUpload);
Vue.component('user-select', UserSelect);
Vue.component('dept-select', DeptSelect);
Vue.component('online-relation-select', OnlineRelationSelect);
Vue.component('online-custom-chart', OnlineCustomChart);
Vue.component('van-avatar', Avatar);
Vue.component('online-form', OnlineForm);
Vue.component('online-report-form', OnlineReportForm);
// 图表
Vue.component('line-chart', LineChart);
Vue.component('bar-chart', BarChart);
Vue.component('pie-chart', PieChart);
Vue.component('funnel-chart', FunnelChart);
Vue.component('radar-chart', RadarChart);
Vue.component('scatter-chart', ScatterChart);

Vue.use(Vant);
Vue.config.productionTip = false;
window.JSON = new JSONbig({storeAsString: true});

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app');
